package com.edu.leetcode.dataStruct;

/**
 * 给你一个整数 n ，请你判断 n 是否为 丑数 。如果是，返回 true ；否则，返回 false 。
 * <p>
 * 丑数 就是只包含质因数 2、3 和/或 5 的正整数。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/ugly-number
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @作者 five-five
 * @创建时间 2021/4/10
 */
public class Demo14 {
    public static void main(String[] args) {
        Demo14 demo14 = new Demo14();
        boolean help = demo14.help(75);
        System.out.println(help);
    }

    /**
     * 看他的乘数是否只有2,3,5.如果有其余的那就不能算是丑数
     *
     * @param n
     * @return
     */
    public boolean isUgly(int n) {
        return n!=0&&help(n);
    }

    /**
     * 递归方法
     * @param n
     * @return
     */
    private boolean help(int n) {
        if (n == 1) {
            return true;
        }
        //开始进行触发
        if (n % 2 == 0) {
            return help(n /= 2);
        }
        if (n % 3 == 0) {
            return help(n /= 3);
        }
        if (n % 5 == 0) {
            return help(n /= 5);
        }
        return false;
    }
}
